package com.zhiliao.chain.demo2;

/**
 * @author zouxf Department:3cs
 * @create Date 2022/3/2 17:35
 * @description JSF接口通用响应结果对象
 * @lastModifiedBy
 * @lastModifiedDate(yyyy/MM/dd)
 * @see
 */
public enum RecResultCode {
    /**
     * 成功
     */
    SUCCESS(100, "成功"),
    /**
     * 回收单批量接出部分成功
     */
    SECTION_SUCCESS(101, "部分成功"),
    /**
     * 请求失败
     */
    FAIL(200, "请求失败"),
    /**
     * 请求失败
     */
    RECYCLE_NOT_EXIST(300, "回收商不存在"),
    /**
     * 回收单状态错误
     */
    RECYCLE_ORDER_STATUS_ERROR(400, "回收单状态错误"),
    /**
     * 内部错误
     */
    UNKNOWN_ERROR(500, "内部错误"),
    /**
     * 回传图片错误
     */
    RECYCLE_PASS_PIC_ERROR(600, "回传图片错误"),
    /**
     * 派工时的师傅状态异常
     */
    RECYCLE_ENGINEER_STATUS_EXCEPTION(700, "派工时的师傅状态异常"),
    /**
     * 服务类型错误
     */
    RECYCLE_SERVICE_TYPE_ERROR(800, "服务类型错误"),
    /**
     * 服务类型错误
     */
    RECYCLE_ORDER_MAX_LIMIT_ERROR(900, "超出批量接出最大限制"),
    /**
     * 请求入参订单号不能为空
     */
    PARAM_SALE_ORDER_NO_MUST_NOT_NULL(1001, "请求入参订单号不能为空"),
    /**
     * 查询的订单不存在
     */
    RESULT_ORDER_NOT_EXISTS(2001, "查无此单"),
    /**
     * 入参订单号空
     */
    QUERY_RECYCLE_ORDER_INFO_PARAM_SALE_ORDER_NOS_NULL(3001, "入参订单号集合不能为空！"),
    /**
     * 入参订单号集合超过最大限制
     */
    QUERY_RECYCLE_ORDER_INFO_PARAM_SALE_ORDER_NOS_LIMIT(3002, "入参订单号集合元素最大为200！")
    ;

    private Integer code;
    private String msg;

    RecResultCode(Integer code, String msg) {
        this.code = code;
        this.msg = msg;
    }

    public String getMsg() {
        return msg;
    }

    public Integer getCode() {
        return code;
    }

    public static RecResultCode getByCode(int code) {
        for (RecResultCode responseCode : RecResultCode.values()) {
            if (responseCode.getCode() == code) {
                return responseCode;
            }
        }
        return UNKNOWN_ERROR;
    }
}
